The technology described herein relates to data processors, such as graphics processors, that include one or more programmable execution units.
Graphics processing is typically carried out in a pipelined fashion, with one or more pipeline stages operating on the data to generate the final render output, e.g. frame that is displayed. Many graphics processing pipelines now include one or more so-called “shading” stages, commonly referred to as “shaders”. For example, a graphics processing pipeline may include one or more of, and typically all of, a geometry shader, a vertex shader and a fragment (pixel) shader. These shaders are processing stages that execute shader programs on input data values to generate a desired set of output data (e.g. appropriately shaded and rendered fragment data in the case of a fragment shader) for processing by the rest of the graphics processing pipeline and/or for output.
A graphics “shader” thus performs graphics processing by running small programs for each work item in an output to be generated, such as a render target, e.g. frame (a “work item” in this regard is usually a vertex or a sampling position (e.g. in the case of a fragment shader), but it may also be a compute shader work item where the graphics processing pipeline is being used to perform compute shading operations (e.g. in accordance with OpenCL or DirectCompute)).
In graphics shader operation, each work item will be processed by means of an execution thread which will execute the shader program in question for the work item in question. Modern graphics processing units (graphics processors) accordingly typically comprise one or more programmable execution units that can execute shader programs to perform graphics processing operations. A given shader program to be executed by the programmable execution unit will comprise a sequence of instructions, and the programmable execution unit will execute the instructions in the sequence appropriately for each execution thread (and work item) that the shader program is to be executed for.
The Applicants believe that there remains scope for improved arrangements for the execution of programs, such as shader programs, in programmable execution units of data processing systems, such as in a programmable execution unit of a graphics processing unit of a graphics processing system.
Like reference numerals are used for like components where appropriate in the drawings.